
#include "InputEvent.h"

#include "../Enamerations/KeyboardStates.h"

#include "../Enamerations/KeyboardButtons.h"


#ifndef UTILS_KEYBOARDEVENT
#define UTILS_KEYBOARDEVENT

class KeyboardEvent : public InputEvent {
public:
	const KeyboardButton button;
	const KeyboardState state;
	const bool shiftDown;
	const bool controlDown;
	const bool altDown;

	KeyboardEvent(
		const KeyboardButton _button,
		const KeyboardState _state,
		const bool _shiftDown,
		const bool _controlDown,
		const bool _altDown
	) : button(_button),
		state(_state),
		shiftDown(_shiftDown),
		controlDown(_controlDown),
		altDown(_altDown) {}

	KeyboardEvent(const KeyboardButton _button, const KeyboardState _state)
		: KeyboardEvent(_button, _state, false, false, false) {}

	virtual ~KeyboardEvent() = default;
};

#endif // UTILS_KEYBOARDEVENT
